﻿/******************************************************************
 * NetCoreCMS Backendmain.js v1.0
 * Author: DavidLee 2019/11/17
 * Script Log（对后台函数功能/方法修改日志记录）:
 *  DavidLee 2019/11/17 创建NetCoreCMS前端- backendmain.js
 *  DavidLee 2019/11/17 layui加载模块功能现在只能一个js文件定义一个模块，定义多个模块无效哎
 *                      故将名称改为backendlogin.js
 *                      模块定义配置见： layuiconfig.js
 *  
 *****************************************************************/

//后台登录模块
$(function () {
    'use strict';
    layui.use(['form', 'element', 'sliderverify', 'notice'], function () {
        var form = layui.form,
            notice = layui.notice,
            verifyer = null;

        var slideorcaptcha = $("#verifytype").val(),
            $submitbtns = $("#loginsubmit");
        if (slideorcaptcha !== "no") {
            if (slideorcaptcha === "captcha") {
                verifyer = $("#img-captchacode");
                verifyer.click(function () {
                    let d = new Date();
                    $(this).attr("src", "/get-captcha-code?" + d.getTime());
                });
            }
            else {
                verifyer = layui.sliderverify.render({
                    elem: '#slider',
                    bg: 'slidesuccessbg'//自定义背景样式名
                });
            }
        }
        
        $(document).on('keydown', function (e) { //document为当前元素，限制范围，如果不限制的话会一直有事件
            if (e.keyCode === 13)
                $submitbtns.click();
        });
        $('#reset').on('click', function () {
            $submitbtns.attr('disabled', false);
            $submitbtns.html('登录');
            $("div.cell input").val("");
            if (verifyer !== null) {
                if (slideorcaptcha === "captcha") {
                    let d = new Date();
                    verifyer.attr("src", "/get-captcha-code?" + d.getTime());
                } else verifyer.reset();
            }
        });
        var showErrorMsg = function (message) {
            $(".login-tip span").html(message);
            $("#Password").val('');
            $(".login-tip").animate({ 'height': '40px' });
            $.wait(5000).then(function () {
                $(".login-tip").animate({ 'height': 0 });
                $(".login-tip span").html('');
            });
        };
        //监听提交
        form.on("submit(login)", function (data) {
            if (verifyer !== null && slideorcaptcha === "slide") {
                if (!verifyer.isOk()) {//用于表单验证是否已经滑动成功
                    notice.warning("请先通过滑块验证");
                    return false;
                }
            }
            $submitbtns.html('<i class="layui-icon layui-anim layui-anim-rotate layui-anim-loop"></i>');
            $submitbtns.attr('disabled', 'disabled');
            httpapi.fetchPost('/api/backend/login', data.field).then(res => {
                if (!httpapi.checkResponse(res)) {
                    //输入信息校验错误
                    showErrorMsg(res.message);
                    $submitbtns.attr('disabled', false);
                    $.wait(1000).then(function () {
                        $submitbtns.html('登录');
                        if (verifyer !== null) {
                            if (slideorcaptcha === "captcha") {
                                let d = new Date();
                                verifyer.attr("src", "/get-captcha-code?" + d.getTime());
                            } else verifyer.reset();
                        }
                    });
                } else //Success
                    layer.msg(res.message, {
                        icon: 1,
                        time: 2000 //2秒关闭（如果不配置，默认是3秒）
                    }, function () {
                        Util.redirect("/backend");
                    });
                }).catch(error => notice.error("对不起，登录过程出现未知错误，请您联系系统管理员！"));
                
            return false;
        });
    });
});